package com.fowo.api.model.logistics.reconciliation;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 物流对账 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class LogisticsReconciliationImportPo {

  /** 销售出库单 */
  @ExcelProperty("销售出库单")
  @Size(max = 50, message = "销售出库单长度不能超过50")
  private String salesoutboundorder;

  /** 运单号 */
  @ExcelProperty("运单号")
  @Size(max = 100, message = "运单号长度不能超过100")
  private String waybillnumber;

  /** 跟踪单号 */
  @ExcelProperty("跟踪单号")
  @Size(max = 100, message = "跟踪单号长度不能超过100")
  private String trackingnumber;

  /** 系统单号 */
  @ExcelProperty("系统单号")
  @Size(max = 50, message = "系统单号长度不能超过50")
  private String sysnumber;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopIdShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String shopId;

  /** 平台单号 */
  @ExcelProperty("平台单号")
  @Size(max = 50, message = "平台单号长度不能超过50")
  private String platformnumber;

  /** 状态 */
  @ExcelProperty("状态")
  @EnumsString(
    value = { "待确认", "已确认", "已删除" },
    message = "状态只能是“待确认”, “已确认”, “已删除”中的一个"
  )
  private String state;

  /** 发货日期 */
  @ExcelProperty("发货日期")
  @DateTimeString(message = "发货日期不是有效的时间日期格式")
  private String sendgoodsdate;

  /** 物流商 */
  @ExcelProperty("物流商")
  @Size(max = 50, message = "物流商长度不能超过50")
  private String logisticsproviderName;

  @ExcelIgnore
  @Schema(title = "物流商")
  private String logisticsprovider;

  /** 物流渠道 */
  @ExcelProperty("物流渠道")
  @Size(max = 50, message = "物流渠道长度不能超过50")
  private String logisticschannelName;

  @ExcelIgnore
  @Schema(title = "物流渠道")
  private String logisticschannel;

  /** 预估费用 */
  @ExcelProperty("预估费用")
  @DecimalString(message = "预估费用小数格式不正确", label = "预估费用")
  private String estimatedfee;

  /** 预估费用（对账） */
  @ExcelProperty("预估费用（对账）")
  @DecimalString(
    message = "预估费用（对账）小数格式不正确",
    label = "预估费用（对账）"
  )
  private String chargedfee;

  /** 物流运费 */
  @ExcelProperty("物流运费")
  @DecimalString(message = "物流运费小数格式不正确", label = "物流运费")
  private String logisticsfee;

  /** 物流运费(对账) */
  @ExcelProperty("物流运费(对账)")
  @DecimalString(
    message = "物流运费(对账)小数格式不正确",
    label = "物流运费(对账)"
  )
  private String logisticsfeereconc;

  /** 运费差异 */
  @ExcelProperty("运费差异")
  @DecimalString(message = "运费差异小数格式不正确", label = "运费差异")
  private String logisticsfeediff;

  /** 称重重量 */
  @ExcelProperty("称重重量")
  @DecimalString(message = "称重重量小数格式不正确", label = "称重重量")
  private String chargedweight;

  /** 计费重量 */
  @ExcelProperty("计费重量")
  @DecimalString(message = "计费重量小数格式不正确", label = "计费重量")
  private String chargingweight;

  /** 重量差异 */
  @ExcelProperty("重量差异")
  @DecimalString(message = "重量差异小数格式不正确", label = "重量差异")
  private String weightdiff;

  /** 是否获取运费 */
  @ExcelProperty("是否获取运费")
  @EnumsString(
    value = { "是", "否" },
    message = "是否获取运费只能是“是”, “否”中的一个"
  )
  private String isobtainshippingcosts;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;
}
